import {INCREMENTCOUNT,DECREMENTCOUNT} from '../constant/countConst'
// 定义reducer的初始值,它是厨师,负责给store传值
const init = {
    count: 0
}
// 这个就是负责处理count数据的函数,先赋予prevState一个初始值,被store调用之后就先返回这个初始值
// action就是接收组件发过来的数据,然后进行操作
export default function countRdeucer(prevState = init, action) {
    // console.log('reducer被调用了');
    //开始接收action对象的type和data,然后进行判断
    // type类型标识符对上了,就返回store想要的值 
    const {
        type,
        data
    } = action
    switch (type) {
        case INCREMENTCOUNT:
            return {
                // 这里我们仍旧不建议直接修改count的值(+1的逻辑)
                // 处理方式,可以先将init里面的数据扩展,找到我们想要的count数据然后重新赋值
                // 赋值的方式就是在上一次的值prevState.count的基础上做改动,比如+1
                ...init, count: prevState.count + data
            };
        case DECREMENTCOUNT:
            return {
                ...init, count: prevState.count - data
            }
    }
    return prevState
}